<?php
	$urlCurso			=	constant('PARAMETRO_1');
	$cursoVisualizado	=	new Curso(null, $urlCurso);
	
	if(defined('PARAMETRO_3') && constant('PARAMETRO_3') == 'turmas') {
		$turma			=	null;
		
		$localAcao		=	constant('PARAMETRO_3');
		$objetivoPagina	=	(defined('PARAMETRO_4') && (constant('PARAMETRO_4') == 'inserir' || is_numeric(constant('PARAMETRO_4')))) ? constant('PARAMETRO_4') : 'listar';
		if ($objetivoPagina == 'listar') {
			$ordenacaoAtual		=	defined('PARAMETRO_4') ? str_replace('ordena', '', constant('PARAMETRO_4')) : 'turma';
			$ordenacaoAtual	= str_replace('ordena', '', $ordenacaoAtual);
			if($ordenacaoAtual == 'turma') $ordenacaoAtual = 'nome';
			if($ordenacaoAtual == 'grupos') $ordenacaoAtual = 'qtdGrupos';
			$ordemAtual			=	defined('PARAMETRO_5') ? constant('PARAMETRO_5') : 'asc';
		}
		if (is_numeric($objetivoPagina)) {
			$idTurma	=	$objetivoPagina;
			$turma	=	new Turma($idTurma);
			if ($turma->getIdTurma() == null)
				redireciona(array('curso', $cursoVisualizado->getUrlCurso(), 'gerencia', 'turmas'));
			$objetivoPagina	=	defined('PARAMETRO_5') ? constant('PARAMETRO_5') : '';
		}
	}
	else {
		redireciona (array('404'));
	}
	
	if ($_POST) {
		if (isset($_POST['btnInserir'])) {
			redireciona(array('curso', $cursoVisualizado->getUrlCurso(), 'gerencia', 'turmas', 'inserir'));
		}
		if (isset($_POST['btnCancelar'])) {
			adicionaMensagem(texto('MENSAGEM_MODIFICACOES_CANCELADAS'));
			redireciona(array('curso', $cursoVisualizado->getUrlCurso(), 'gerencia', 'turmas'));
		}
		if (isset($_POST['btnExcluir'])) {
			foreach($_POST as $chave => $post) {
				if(preg_match('/^checkTurma[0-9]+$/', $chave) && $post != ""){
					if (Turma::excluir(str_replace('checkTurma', '', $chave)))
						adicionaMensagem(texto('MENSAGEM_SUCESSO_EXCLUIR_ITEM'));
					else
						adicionaMensagem(texto('MENSAGEM_ERRO_EXCLUIR_ITEM'), 'erro');
				}
			}
			redireciona(array('curso', $cursoVisualizado->getUrlCurso(), 'gerencia', 'turmas'));
		}
		if (isset($_POST['btnSalvar'])) {
			$strNome		=	pegaPost('strNome');
			$idCurso		=	$cursoVisualizado->getIdCurso();
			
			$idProfessores	=	array();
			foreach($_POST as $chave => $post) {
				if(preg_match('/^strProfessor[0-9]+$/', $chave) && $post != ""){
					array_push($idProfessores, str_replace('strProfessor', '', $chave));
				}
			}
			
			if (Turma::inserir($idCurso, $strNome, $idProfessores)) {
				adicionaMensagem(texto('MENSAGEM_SUCESSO_INSERIR_TURMA'));
				redireciona(array('curso', $cursoVisualizado->getUrlCurso(), 'gerencia', 'turmas'));
			}
			else {
				$_SESSION['constructore']['curso']['gerencia']['inserirTurma']	=	$_POST;
				redireciona(array('curso', $cursoVisualizado->getUrlCurso(), 'gerencia', 'turmas', 'inserir'));
			}
			
		}
		
		if (isset($_POST['btnSalvarEdicao'])) {
			$strNome		=	$_POST['strNome'];
			$idCurso		=	$cursoVisualizado->getIdCurso();
			$idTurma		=	$turma->getIdTurma();
			
			$idProfessores	=	array();
			foreach($_POST as $chave => $post) {
				if(preg_match('/^strProfessor[0-9]+$/', $chave) && $post != ""){
					array_push($idProfessores, str_replace('strProfessor', '', $chave));
				}
			}
			
			if (Turma::editar($idTurma, $idCurso, $strNome, $idProfessores)) {
				adicionaMensagem(texto('MENSAGEM_SUCESSO_EDITAR_TURMA'));
				redireciona(array('curso', $cursoVisualizado->getUrlCurso(), 'gerencia', 'turmas'));
			}
			else {
				$_SESSION['constructore']['curso']['gerencia']['inserirTurma']	=	$_POST;
				redireciona(array('curso', $cursoVisualizado->getUrlCurso(), 'gerencia', 'turmas', $idTurma, 'editar'));
			}
			
		}
	}
	else {
		//Validando os parametros
		if (($turma == null && ($objetivoPagina == 'listar' || $objetivoPagina ==  'inserir')) || $turma != null && $objetivoPagina == 'editar') {			
			$grupos =	$cursoVisualizado->getGruposBusca(false, null, null, null, null);
			
			$existeGrupoTurmaPadrao	=	false;
			foreach($grupos['listaResultados'] as $chave => $grupo) {
				if ($grupo['nomeTurma'] == null) {
					$existeGrupoTurmaPadrao	=	true;
					if ($objetivoPagina != 'listar') {
						adicionaMensagem(texto('MENSAGEM_ERRO_ACAO_INVALIDA'), 'erro');
						redireciona(array('curso', $cursoVisualizado->getUrlCurso(), 'gerencia', 'turmas'));
					}
					break;
				}
			}
			$this->getSmarty()->assign('existeGrupoTurmaPadrao', $existeGrupoTurmaPadrao);
			if ($objetivoPagina == 'listar') {
				$turmas =	$cursoVisualizado->getTurmasBusca(false, null, null, $ordenacaoAtual, $ordemAtual); 
				foreach($turmas['listaResultados'] as $chave => $turma) {
					$professores		=	Turma::getProfessores($turma['idTurma']);
					//Pegando os Professores da Turma
					foreach($professores as $idUsuario => $professor) {
						$textoProfessores	=	"<a href = \"". montalink(array('usuario', $idUsuario)) ."\" class = \"linkVermelhoPequeno\" >" . $professor['nome'] . "</a>, ";
					}
					//Consertando o texto
					$textoProfessores	=	preg_replace('/, $/', ' ', $textoProfessores);
					
					$turmas['listaResultados'][$chave]['qtdGrupos']		=	$turma['qtdGrupos']	-	1;
					$turmas['listaResultados'][$chave]['professores']	=	$textoProfessores;
					$turmas['listaResultados'][$chave]['editarUrl']		=	montalink(array('curso', $cursoVisualizado->getUrlCurso(), 'gerencia', 'turmas', $turma['idTurma'], 'editar'));
				}
				$this->getSmarty()->assign('listaTurmas', $turmas);
				$this->getSmarty()->assign('ordenacaoAtual', $ordenacaoAtual);
				$this->getSmarty()->assign('ordemAtual', $ordemAtual);
				
				$this->getSmarty()->assign('TEXTO_QUANTIDADE_RESULTADOS', texto('TEXTO_QUANTIDADE_RESULTADOS', array($turmas['qtdResultadosTotal'], $turmas['qtdResultadosTotal'])));
				
				$this->getSmarty()->assign('LISTA_TITULO_TURMA_HREF', montaLink(array('curso', $urlCurso, 'gerencia', 'turmas', 'ordenaturma', $ordenacaoAtual != 'nome' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'))));
				$this->getSmarty()->assign('LISTA_TITULO_TURMA_TITLE', $ordenacaoAtual != 'nome' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TURMA'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TURMA'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_TURMA')))));
				
				$this->getSmarty()->assign('LISTA_TITULO_NUMERO_DE_GRUPOS_HREF', montaLink(array('curso', $urlCurso, 'gerencia', 'turmas', 'ordenagrupos', $ordenacaoAtual != 'qtdGrupos' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'))));
				$this->getSmarty()->assign('LISTA_TITULO_NUMERO_DE_GRUPOS_TITLE', $ordenacaoAtual != 'qtdGrupos' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_QUANTIDADE_DE_GRUPOS'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_QUANTIDADE_DE_GRUPOS'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_QUANTIDADE_DE_GRUPOS')))));
				
				$this->getSmarty()->assign('TITULO_BARRA_NAVEGADOR', texto('TITULO_BARRA_NAVEGADOR', array(texto('AREA_GERENCIA_TURMAS') . ' - ' . texto('AREA_GERENCIA') . ' - ' . limitaTexto($cursoVisualizado->getNome()))));
				$this->getSmarty()->assign('TEXTO_NAVEGACAO', limitaTexto($cursoVisualizado->getNome()) . ' > ' . texto('AREA_GERENCIA') . ' > ' . texto('AREA_GERENCIA_TURMAS'));
				
			}
			if ($objetivoPagina == 'inserir') {
				$this->getSmarty()->assign('professoresCurso', $cursoVisualizado->getProfessores());
				$this->getSmarty()->assign('inserir', true);
				
				$this->getSmarty()->assign('TITULO_BARRA_NAVEGADOR', texto('TITULO_BARRA_NAVEGADOR', array(texto('TEXTO_INSERIR_DADO', array(texto('DADOS_TURMA'))) . ' - ' . texto('AREA_GERENCIA_TURMAS') . ' - ' . texto('AREA_GERENCIA') . ' - ' . limitaTexto($cursoVisualizado->getNome()))));
				$this->getSmarty()->assign('TEXTO_NAVEGACAO', limitaTexto($cursoVisualizado->getNome()) . ' > ' . texto('AREA_GERENCIA') . ' > ' . texto('AREA_GERENCIA_TURMAS') . ' > ' . texto('TEXTO_INSERIR_DADO', array(texto('DADOS_TURMA'))));
			}
			if ($objetivoPagina == 'editar') {
				$professores	=	Turma::getProfessores($turma->getIdTurma());
				
				if (!isset($_SESSION['constructore']['curso']['gerencia']['inserirTurma'])) {
					$_SESSION['constructore']['curso']['gerencia']['inserirTurma']['strNome']	=	$turma->getNome();
					foreach($professores as $idUsuario => $professor) {
						$_SESSION['constructore']['curso']['gerencia']['inserirTurma']['strProfessor' . $idUsuario]	=	'on';	
					}
				}
				
				$this->getSmarty()->assign('professoresCurso', $cursoVisualizado->getProfessores());
				$this->getSmarty()->assign('editar', true);
				
				$this->getSmarty()->assign('TITULO_BARRA_NAVEGADOR', texto('TITULO_BARRA_NAVEGADOR', array(texto('TEXTO_EDITAR_DADO', array(texto('DADOS_TURMA'))) . ' - ' . texto('AREA_GERENCIA_TURMAS') . ' - ' . texto('AREA_GERENCIA') . ' - ' . limitaTexto($cursoVisualizado->getNome()))));
				$this->getSmarty()->assign('TEXTO_NAVEGACAO', limitaTexto($cursoVisualizado->getNome()) . ' > ' . texto('AREA_GERENCIA') . ' > ' . texto('AREA_GERENCIA_TURMAS') . ' > ' . texto('TEXTO_EDITAR_DADO', array(texto('DADOS_TURMA'))));
			}			
		}
		else {
			redireciona(array('404'));
		}
		$this->exibir('turmas');
		if (isset($_SESSION['constructore']['curso']['gerencia']['inserirTurma']))
			unset($_SESSION['constructore']['curso']['gerencia']['inserirTurma']);
	}
	
?>